Method and apparatus for busy override in an internet protocol-based telephone system

ABSTRACT

Method and apparatus for busy override in an internet protocol-based telephone system are described. In some examples, a first communication attempt of a third party to a first party is received, the first party being in an established communication session with a second party. A busy operation is performed with respect to the third party in response to the first communication attempt. At least one additional communication attempt by the third party is received. A busy override operation is performed with respect to the first party in response to the first communication attempt and the at least one additional communication attempt satisfying at least a threshold pattern of communication attempts.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 12/483,303, titled “METHOD and APPARATUS for BUSY OVERRIDE INAN INTERNET PROTOCOL-BASED TELEPHONE SYSTEM,” filed on Jun. 12, 2009,and listing Geoffrey P. Langos as the inventor. The aforementionedpatent application is herein incorporated in its entirety by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to telecommunication systemsand, more particularly, to a method and apparatus for busy override inan internet protocol-based telephone system.

2. Description of the Related Art

Voice over IP (VoIP) is a recent technological development in the fieldof telecommunications that is utilized to transmit voice conversationsover a data network using the Internet Protocol (IP). After a usersubscribes to a VoIP service, the user can make phone calls to otherVoIP subscribers or to public switched telephone network (PSTN)customers and access a number of features associated with the VoIPservice, such as call waiting, three-way calling, call forwarding,voicemail service, and the like. Notably, call waiting is a telephonyservice where a user is able to suspend a current telephone call andswitch to a new incoming telephone call. Typically, the user is alertedto the new incoming call by a tone or like type indication. The user canthen switch back-and-forth between the previous and new telephone calls.

Typically, the user is afforded the opportunity to turn the call waitingfeature on or off at will. For example, the user can enter a predefinedsequence prior to dialing a telephone number, such as *70 or the like,to disable call waiting for an individual call. In another example, auser can log into an account manager (e.g., via the Internet) and turnoff call waiting for all calls. When call waiting has been so disabled,the VoIP system will not alert the user of new incoming calls while theuser is on a current call. Instead, the VoIP system designates user asbusy. For example, the VoIP system may send all new incoming calls tovoicemail or return a busy signal thereto while the user is on a currentcall.

One problem with the current call waiting feature is the inability toreach a user who has disabled call waiting during an emergency. Forexample, a user may generally desire to disable call waiting, but wouldnot mind being interrupted by an incoming call in case of emergency.Presently, a caller must try and contact the user who has disabled callwaiting using another mechanism when the user is on a call, such astrying the user's mobile telephone, calling the user's neighbor, and thelike, to the extent the caller even knows any of these alternativemechanisms. This may prevent the user from receiving urgent informationin a timely manner.

Accordingly, there exists a need in the art for a method and apparatusfor a busy override feature in an internet protocol-based telephonesystem, such as a VoIP system.

SUMMARY OF THE INVENTION

Embodiments of the invention relate to a method, apparatus, and computerreadable medium for processing communication attempts during anestablished communication session. In some embodiments, a firstcommunication attempt by a third party to a first party is received, thefirst party being in the established communication session with a secondparty. A busy operation is performed with respect to the third party inresponse to the first communication attempt. At least one additionalcommunication attempt by the third party is received. A busy overrideoperation is performed with respect to the first party in response tothe first communication attempt and the at least one additionalcommunication attempt satisfying at least a threshold pattern ofcommunication attempts.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the presentinvention can be understood in detail, a more particular description ofthe invention, briefly summarized above, may be had by reference toembodiments, some of which are illustrated in the appended drawings. Itis to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1 is a block diagram depicting an exemplary embodiment of acommunication system in accordance with one or more aspects of theinvention;

FIG. 2 is a flow diagram depicting a method of handling incoming callsduring an established communication session according to someembodiments of the invention;

FIG. 3 is a flow diagram depicting a method of selectively implementinga busy override operation according to some embodiments of theinvention;

FIG. 4 is a block diagram depicting exemplary communication through aVOIP network according to some embodiments of the invention; AND

FIG. 5 is a block diagram depicting an exemplary embodiment of acomputer in accordance with one or more aspects of the invention.

DETAILED DESCRIPTION

FIG. 1 is a block diagram depicting an exemplary embodiment of acommunication system 100 in accordance with one or more aspects of theinvention. The communication system 100 includes avoice-over-internet-protocol (VOIP) network 104 (generally referred toas a telecommunication system) and a public switched telephone network(PSTN) 106. The VOIP network 104 includes a call handling server 102 anda plurality of other servers 110 coupled to an internet protocol (IP)network 108. The servers 110 may include various well known serversconfigured to facilitate VOIP services, such as provisioning servers,proxy servers, media relay servers, and the like. The call handlingserver 102 is configured to handle calls to and from users of the VOIPnetwork 104, as described below. The servers 102 and 110 may beimplemented using a plurality of computer systems and like type generaland/or specific purpose devices and systems. The one or more of theservers 110 may be coupled to a PSTN gateway 130, which in turn iscoupled to the PSTN 106. The PSTN 106 provides conventional telephoneservice to a plurality of telephones 132.

Various customer premises equipment (CPE) 112 are coupled to the IPnetwork 108 via links 128. Various communication devices 114 may becoupled to the CPE 112. The CPE 112 may include modems, terminaladapters, routers, and the like configured to provide an interfacebetween the communication devices 114 and the IP network 108. Thecommunication devices 114 may comprise telephones, video phones,computers, mobile devices, and the like. The CPE 112 and thecommunication devices 114 may be distributed among a plurality ofsubscribers to VOIP services provided by the VOIP network 104. The links128 may include cable, digital subscriber line (DSL), or like typecommunication links known in the art.

In general operation, subscribers use the communication devices 114 andthe CPE 112 to convert content (e.g., voice, video, data, some or all ofwhich may be analog) and signaling into VOIP-based content and signaling(“a VOIP call”). VOIP calls may be transmitted to the IP network 108 viathe CPE 112 over the links 128. Those skilled in the art will appreciatethat the VOIP calls may pass through other IP networks before reachingthe IP network 108 of the VOIP network 104. For example, the VOIP callsmay pass through various IP networks of the Internet before being routedto the IP network 108 (e.g., internet service provider (ISP) networks,backbone networks, etc.). VOIP calls may be processed by the callhandling server 102 and the servers 110. VOIP calls may be directed toother subscribers of the VOIP network 104, to subscribers of other VOIPnetworks (not shown), or to subscribers of traditional telephoneservices (e.g., the PSTN 106).

Some embodiments of the invention relate to providing a busy overridefeature using an IP-based telecommunication system, such as the VOIPnetwork 104. Generally, when a subscriber activates their service (e.g.,a VOIP service), they have access to a number of features, such as butnot limited to, call waiting, call forwarding, do not disturb, callerID, three-way calling, and the like. A subscriber canactivate/deactivate features through interaction with a managementsystem 140 (e.g., using the communication devices 114). The managementsystem 140 may be implemented by one or more of the servers 110.

Notably, a subscriber may use the management system 140 to enable ordisable a call waiting feature. If call waiting is enabled through themanagement system 140, then the subscriber will be alerted to, andpermitted to switch to, new incoming calls during a telephone call. Ifcall waiting is disabled through the management system 140, then thesubscriber will not, in general, be alerted to any incoming calls duringa telephone call (exception for busy override discussed below). Instead,the subscriber will be deemed to be “busy” and a busy operation will beperformed, such as forwarding the incoming call to voicemail, returninga busy signal, forward the call to another party, connecting the call toan interactive voice response (IVR) system, or the like. In someembodiments, if call waiting is generally enabled through the managementsystem 140, a subscriber may selectively disable call waiting for aparticular telephone call, e.g., by entering a particular indicatorbefore dialing a telephone number, such as *70 or the like. If callwaiting is selectively disabled for a particular telephone call, thenthe subscriber will not, in general, be alerted to any incoming callsduring a telephone call (exception for busy override discussed below).

In some embodiments, the call handling server 102 is configured tohandle incoming and outgoing calls to and from the communication devices114 of the subscribers. When a subscriber initiates an outgoing call toa particular telephone number, the call handling server 102 begins aprocess for connecting to a communication device associated with thedialed telephone number. The call handling server 102 is furtherconfigured to implement a busy override feature for each subscriber. Inparticular, the call handling server 102 can query the management system140 using an identifier for the subscriber making a call to determinewhether call waiting is enabled for the subscriber. In some embodiments,the call handling server 102 can determine whether the subscriber makingthe outgoing call has selectively disabled call waiting (e.g., bydetecting a predefined indicator, such as *70). If call waiting isenabled, the call handling server 102 implements a call waitingoperation in response to incoming calls received during a previouslyestablished communication session. If call waiting is disabled, the callhandling server 102 executes a process to determine whether a busyoperation or a busy override operation should be performed. A busyoperation may include sending an incoming call to voicemail of thesubscriber, returning a busy signal to the caller, forwarding theincoming call to another party, forwarding the incoming call to an IVRsystem, or the like. A busy override operation may include implementingthe call waiting operation despite the disabled status of the callwaiting feature. The call handling server 102 can implement a methodthat effectively detects a pattern of incoming calls from a particularcaller indicative of an urgent need for communication. Embodiments ofmethods performed by the call handling server 102 are discussed below.

FIG. 2 is a flow diagram depicting a method 200 of handling incomingcalls during an established communication session according to someembodiments of the invention. The method 200 may be performed by thecall handling server 102. Assume that a subscriber has initiated atelephone call and is currently connected to another communicationdevice through the VOIP network 104 (referred to as an “establishedcommunication session”).

The method 200 begins at step 202, where the call handling server 102receives a communication attempt for the subscriber while the subscriberis in the established communication session. For example, thecommunication attempt may be an incoming call destined for thesubscriber. The subscriber may also be referred to herein as the “firstparty.” The other party or parties in the established communicationsession are referred to as the “second party.” The party providing thecommunication attempt during the established communication session maybe referred to herein as the “third party.”

At step 204, the call handling server determines whether call waiting isenabled for the subscriber. In some embodiments, the call handlingserver 102 has determined whether call waiting is enabled for thesubscriber during initiation of the established communication session(e.g., via interaction with the management system 140 or via receivingthe predefined indicator for selectively disabling call waiting, asdiscussed above). Alternatively, if the subscriber did not selectivelydisable call waiting, the call handling server 102 may query themanagement system 140 upon the call handling server 102 receiving anincoming call during the established communication session.

In either case, if the call handling server 102 indicates call waitingis enabled, the method 200 proceeds to step 206. At step 206, the callhandling server 102 implements a call waiting operation. For example,the call handling server 102 can send an indication to the subscriber ofthe communication attempt, and implement switching between theestablished communication session and a newly established communicationsession for the communication attempt.

If at step 204 call waiting has been disabled, then the method 200proceeds to step 208. At step 208, the call handling server 102determines whether a busy operation or a busy override operation shouldbe performed. If a busy operation should be performed, the method 200proceeds to step 210. At step 210, the call handling server 102 performsthe busy operation. In some embodiments, the busy operation includesforwarding the communication request to a voicemail box for thesubscriber (e.g., implemented by one of the servers 110). In someembodiments, the busy operation includes sending a busy signal to thecommunication device that originated the communication attempt. In someembodiments, the busy operation includes forwarding the call to anotherparty (e.g., another party may be designated by the subscriber). In someembodiments, the busy operation includes forwarding the call to an IVRsystem. In any case, in the busy operation, the subscriber is notalerted as to the communication attempt during the establishedcommunication session.

If at step 208 the call handling server 102 determines that a busyoverride operation should be performed, the method 200 proceeds to step212. At step 212, the call handling server 102 performs the busyoverride operation. The busy override operation may include the callhandling server 102 implementing a call waiting process. For example,the call handling server 102 can send an indication to the subscriber ofthe communication attempt, and implement switching between theestablished communication session and a newly established communicationsession for the communication attempt. The method 200 may return to step202 and repeat for additional communication attempts during theestablished communication session. The method 200 may be performed forvarious subscribers having established communication sessions.

FIG. 3 is a flow diagram depicting a method 300 of selectivelyimplementing a busy override operation according to some embodiments ofthe invention. The method 300 may be performed by the call handlingserver 102 during step 208 to determine whether a busy overrideoperation or busy operation should be performed given a particularcommunication attempt. The method 300 begins at step 302, where the callhandling server 102 determines an identifier for the origin of thecommunication attempt (e.g., a telephone number associated with thecalling communication device or like type identifier). At step 304, thecall handling server 102 determines whether a timer has been initiatedfor the identifier. If not, the method 300 proceeds to step 306, wherethe call handling server 102 initiates a timer associated with theidentifier. The method 300 proceeds to step 308, where the call handlingserver 102 signals a busy operation should be performed. At an optionalstep 307, the call handling server 102 may also initialize a counter ofthe number of communication attempts for the identifier (initially setto one attempt).

If at step 304 the call handling server 102 is maintaining a timer forthe identifier, the method 300 proceeds to step 310. That is, if a timerhas been established for the identifier, then this is not the firstcommunication attempt for the identifier received during the establishedcommunication session. Thus, more than one communication attempt from anidentifier has been received over a particular period of time (e.g., a“pattern” of communication attempts for the identifier). At step 310,the call handling server 102 determines whether the communicationattempt establishes a pattern of communication attempts that satisfies athreshold pattern.

Notably, the threshold pattern can be defined by a threshold number ofcommunication attempts within a threshold time period. As noted in step306, the call handling server 102 maintains a timer that begins trackingelapsed time from the first communication attempt for the identifier. Insome embodiments, the test at step 310 may be to determine whether asecond communication attempt has been received within a thresholdelapsed time (e.g., a second communication attempt within 60 seconds ofthe first communication attempt). In such an embodiment, the callhandling server 102 may only use the timer for elapsed time, and notmaintain a count for the communication attempts (since the existence ofthe timer indicates a first attempt and the test at step 304 indicates asecond attempt).

In some embodiments, the threshold pattern can include any number ofcommunication attempts within any one time period (e.g., in general,some number of communication attempts within some time period). In suchcases, the call handling server 102 needs to maintain both the timer anda count of communication attempts.

In still further embodiments, the threshold pattern can includedifferent numbers of communication attempts for different time periods,such as two attempts in one time period, three attempts in another timeperiod, and so on. For example, two attempts in 60 seconds or threeattempts in 90 seconds. In such cases, the call handling server 102needs to maintain both the timer and a count of communication attempts.

In some embodiments, the subscriber may interact with the managementsystem 140 to establish a desired threshold pattern (i.e., the thresholdpattern can be selectable by the subscriber). The call handling server102 can query the management system 140 to obtain the threshold patternas set by the subscriber.

If at step 310 the communication attempt does not establish a pattern ofcommunication attempts that satisfies the threshold pattern, the method300 proceeds to step 308. That is, since the communication attempt doesnot cause the threshold pattern to be satisfied, a busy overrideoperation is not invoked and a busy operation is indicated. At optionalstep 312, the timer and/or the counter for the identifier may be resetdepending on the threshold pattern. For example, if the thresholdpattern requires two attempts within some number of seconds, and thecommunication attempt does not satisfy this requirement, then the timermay be reset.

However, if at step 310 the communication attempt does establish apattern of communication attempts that satisfies the threshold pattern,the method 300 proceeds to step 314. At step 314, the call handlingserver 102 initiates a busy override operation. As noted above, the busyoverride operation may be implemented using a call waiting operation.Assuming the subscriber knows that call waiting has been disabled, acall waiting alert notifies the subscriber of a potential emergency orthat someone may be urgently attempting communication. At optional step316, the timer and/or the counter for the identifier may be reset. Themethod 300 may be repeated for each communication attempt receivedduring an established communication session for a subscriber.

Aspects of the methods 200 and 300 may be understood with respect to thefollowing example. FIG. 4 is a block diagram depicting exemplarycommunication through the VOIP network 104 according to some embodimentsof the invention. A first party 402 is in an established communicationsession 404 with a second party 406 through the VOIP network 104. Thefirst party 402 has disabled call waiting during the communicationsession 404. A third party 408 is attempting to communicate with thefirst party 402. The third party 408 initiates a first communicationattempt 410 during the communication session 404. The firstcommunication attempt 410 is received by the call handling server 102.In response to the first communication attempt 410, the call handlingserver 102 determines that call waiting has been disabled during thecommunication session 404, and performs a busy operation, as describedabove. The call handling server 102 maintains a timer and optionally acounter for an identifier associated with the third party 408.

The third party 408 then initiates at least one additional communicationattempt 412 during the communication session 404. The additionalattempt(s) 412 is/are received by the call handling server 102. The callhandling server 102 notes the identifier of the third party 408,accesses the timer and optionally the counter, and determines whetherthe first communication attempt 410 and the at least one additionalcommunication attempt 412 satisfy a threshold pattern of communicationattempts. If so, the call handling server 102 performs a busy overrideoperation 414 with respect to the first party 402 (e.g., by implementinga call waiting operation), as described above. Otherwise, the callhandling server 102 performs a busy operation, as described above. Thisprocess may be extended for any number of communication attempts by thethird party 408, and for any number of additional parties attempting thecommunicate with the first party 402.

FIG. 5 is a block diagram depicting an exemplary embodiment of acomputer 500 in accordance with one or more aspects of the invention.The computer 500 may be used to implement the call handling server 102or any of the other servers 110. The computer 500 may be one of any formof a general purpose computer used in accessing and operating within anIP-based network. The computer 500 may include a processor 501, a memory503, various support circuits 504, and an I/O interface 502. Theprocessor 501 may include one or more microprocessors or the like knownin the art. The support circuits 504 include conventional cache, powersupplies, clock circuits, data registers, and the like. The I/Ointerface 502 is configured for communication with the IP network 108.The memory 503, or computer readable medium, may include one or more ofthe following random access memory, read only memory, magneto-resistiveread/write memory, optical read/write memory, cache memory, magneticread/write memory, and the like. The I/O interface 502 may be coupled toother servers, databases, and the like.

The memory 503 may store software 550 that is executed to performmethods of according to embodiments of the invention. For example, thesoftware 550 can implement the methods 200 and 300 in the call handlingserver 102, described above. The software 550, when executed by theprocessor 501, transforms the general purpose computer into a specificpurpose computer that controls methods described herein. Althoughembodiments of the process of the present invention are discussed asbeing implemented as a software routine, some of the method steps thatare disclosed herein may be performed in hardware or a combination ofhardware and software. As such, the invention may be implemented insoftware as executed upon a computer system, in hardware as anapplication specific integrated circuit or other type of hardwareimplementation, or a combination of software and hardware.

Additionally, the software 550 may be used to automatically manage oneor more additional services that the telecommunications service provideroffers, such as the management system 140 in the servers 110 or otherservices known to those skilled in the art of telecommunications.Further, the software 550 may act as a “stand alone” program or may beembedded with one or more other routines or programs that provide one ormore additional telecommunication services. The software 550 of thepresent invention is capable of being executed on computer operatingsystems including but not limited to Microsoft Windows 98, MicrosoftWindows XP, Apple OS X and Linux. Similarly, the software 550 of thepresent invention is capable of being performed using CPU architecturesincluding but not limited to Apple Power PC, AMD/Intel x86, Sun SPARC,and Intel ARM.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Thus, the breadth and scope of a preferred embodiment shouldnot be limited by any of the above-described exemplary embodiments, butshould be defined only in accordance with the following claims and theirequivalents.

1. A method of processing communication attempts during an establishedcommunication session, comprising: receiving a first communicationattempt by a third party to a first party, the first party being in theestablished communication session with a second party; performing a busyoperation with respect to the third party in response to the firstcommunication attempt; receiving at least one additional communicationattempt by the third party; and performing a busy override operationwith respect to the first party in response to the first communicationattempt and the at least one additional communication attempt satisfyingat least a threshold pattern of communication attempts.
 2. The method ofclaim 1, further comprising: initiating a timer in response to the firstcommunication attempt; wherein the threshold pattern is based on elapsedtime of the timer.
 3. The method of claim 2, further comprising:initiating a counter that maintains a count of the first communicationattempt and the at least one additional communication attempt; whereinthe threshold pattern is further based on the count of the counter, andwherein the threshold pattern includes at least one threshold count ofthe counter within at least one threshold elapsed time of the timer. 4.The method of claim 2, wherein the at least one additional communicationattempt includes a second communication attempt, and wherein thethreshold pattern includes the first communication attempt and thesecond communication attempt being within a threshold elapsed time ofthe timer.
 5. The method of claim 1, wherein the act of performing thebusy override operation comprises: notifying the first party during theestablished communication session of attempted communication by thethird party.
 6. The method of claim 1, wherein the act of performing thebusy operation comprises one of: connecting the third party to avoicemail box of the first party; forwarding the third party to a fourthparty; returning a busy signal to the third party; or connecting thethird party to an interactive voice response (IVR) system.
 7. The methodof claim 2, wherein the first communication attempt includes anidentifier, wherein the timer is associated with the identifier, andwherein each of the at least one additional communication attempt isassociated with the identifier.
 8. An apparatus for processingcommunication attempts during an established communication session overa communication network, comprising: a) at least one processor; and b)at least one storage device storing processor-executable instructionswhich, when executed by the at least one processor, perform a methodincluding receiving a first communication attempt by a third party to afirst party, the first party being in the established communicationsession with a second party; performing a busy operation with respect tothe third party in response to the first communication attempt;receiving at least one additional communication attempt by the thirdparty; and performing a busy override operation with respect to thefirst party in response to the first communication attempt and the atleast one additional communication attempt satisfying at least athreshold pattern of communication attempts.
 9. The apparatus of claim8, wherein the method performed further includes: initiating a timer inresponse to the first communication attempt; wherein the thresholdpattern is based on elapsed time of the timer.
 10. The apparatus ofclaim 9, wherein the method performed further includes: initiating acounter that maintains a count of the first communication attempt andthe at least one additional communication attempt; wherein the thresholdpattern is further based on the count of the counter, and wherein thethreshold pattern includes at least one threshold count of the counterwithin at least one threshold elapsed time of the timer.
 11. Theapparatus of claim 9, wherein the at least one additional communicationattempt includes a second communication attempt, and wherein thethreshold pattern includes the first communication attempt and thesecond communication attempt being within a threshold elapsed time ofthe timer.
 12. The apparatus of claim 8, wherein the act of performingthe busy override operation includes: notifying the first party duringthe established communication session of attempted communication by thethird party.
 13. The apparatus of claim 8, wherein the act of performingthe busy operation includes one of: connecting the third party to avoicemail box of the first party; forwarding the third party to a fourthparty; returning a busy signal to the third party; or connecting thethird party to an interactive voice response (IVR) system.
 14. Theapparatus of claim 9, wherein the first communication attempt includesan identifier, wherein the timer is associated with the identifier, andwherein each of the at least one additional communication attempt isassociated with the identifier.
 15. A non-transitory computer readablemedium having instructions stored thereon that when executed by aprocessor cause the processor to perform a method of processingcommunication attempts during an established communication session,comprising: receiving a first communication attempt by a third party toa first party, the first party being in the established communicationsession with a second party; performing a busy operation with respect tothe third party in response to the first communication attempt;receiving at least one additional communication attempt by the thirdparty; and performing a busy override operation with respect to thefirst party in response to the first communication attempt and the atleast one additional communication attempt satisfying at least athreshold pattern of communication attempts.
 16. The non-transitorycomputer readable medium of claim 15, further comprising: initiating atimer in response to the first communication attempt; wherein thethreshold pattern is based on elapsed time of the timer.
 17. Thenon-transitory computer readable medium of claim 16, further comprising:initiating a counter that maintains a count of the first communicationattempt and the at least one additional communication attempt; whereinthe threshold pattern is further based on the count of the counter, andwherein the threshold pattern includes at least one threshold count ofthe counter within at least one threshold elapsed time of the timer. 18.The non-transitory computer readable medium of claim 16, wherein the atleast one additional communication attempt includes a secondcommunication attempt, and wherein the threshold pattern includes thefirst communication attempt and the second communication attempt beingwithin a threshold elapsed time of the timer.
 19. The non-transitorycomputer readable medium of claim 15, wherein the act of performing thebusy override operation comprises: notifying the first party during theestablished communication session of attempted communication by thethird party.
 20. The non-transitory computer readable medium of claim16, wherein the first communication attempt includes an identifier,wherein the timer is associated with the identifier, and wherein each ofthe at least one additional communication attempt is associated with theidentifier.